package com.qidianit.mes.pojo.pro;

import com.qidianit.mes.pojo.Customer;
import com.qidianit.mes.pojo.Material;
import com.qidianit.mes.pojo.SysDictData;

import java.time.LocalDateTime;

/**
 * 生产工单实体类
 * 对应数据库表：mes_production_order
 */
public class ProductionOrder {
    /**
     * 主键ID
     */
    private Long id;

    private String productionOrderCode;


    public String getProductionOrderCode() {
        return productionOrderCode;
    }

    public void setProductionOrderCode(String productionOrderCode) {
        this.productionOrderCode = productionOrderCode;
    }

    /**
     * 工单编号
     */
    private String orderNo;
    
    /**
     * 工单名称
     */
    private String orderName;
    
    /**
     * 订单来源(1或2)
     */
    private Byte orderSource;
    
    /**
     * 关联订单编号(可为空)
     */
    private String relatedOrderNo;
    
    /**
     * 工单类型(3种固定值)
     */
    private Byte orderType;
    
    /**
     * 产品编号
     */
    private String productCode;
    
    /**
     * 工单数量
     */
    private Integer quantity;
    
    /**
     * 需求日期
     */
    private LocalDateTime requiredDate;
    
    /**
     * 客户编码(可为空)
     */
    private String customerCode;
    
    /**
     * 供应商编码(可为空)
     */
    private String supplierCode;
    
    /**
     * 二维码图片地址
     */
    private String qrCodeUrl;
    
    /**
     * 状态(参考字典表)
     */
    private Byte status;
    
    /**
     * 备注
     */
    private String remark;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 创建人
     */
    private String createBy;
    
    /**
     * 最后修改时间
     */
    private LocalDateTime updateTime;
    
    /**
     * 最后修改人
     */
    private String updateBy;
    
    /**
     * 删除标记(0-未删除,1-已删除)
     */
    private Byte deleteFlag;
    // 一下属性为瞬时状态属性
    private Customer customer;
    private Material material;

    private SysDictData typeDictData;
    private SysDictData statusDictData;

    public SysDictData getTypeDictData() {
        return typeDictData;
    }

    public void setTypeDictData(SysDictData typeDictData) {
        this.typeDictData = typeDictData;
    }

    public SysDictData getStatusDictData() {
        return statusDictData;
    }

    public void setStatusDictData(SysDictData statusDictData) {
        this.statusDictData = statusDictData;
    }

    public Customer getCustomer() {
        return customer;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    public Material getMaterial() {
        return material;
    }

    public void setMaterial(Material material) {
        this.material = material;
    }

    // getter和setter方法
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getOrderName() {
        return orderName;
    }

    public void setOrderName(String orderName) {
        this.orderName = orderName;
    }

    public Byte getOrderSource() {
        return orderSource;
    }

    public void setOrderSource(Byte orderSource) {
        this.orderSource = orderSource;
    }

    public String getRelatedOrderNo() {
        return relatedOrderNo;
    }

    public void setRelatedOrderNo(String relatedOrderNo) {
        this.relatedOrderNo = relatedOrderNo;
    }

    public Byte getOrderType() {
        return orderType;
    }

    public void setOrderType(Byte orderType) {
        this.orderType = orderType;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public Integer getQuantity() {
        return quantity;
    }

    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }

    public LocalDateTime getRequiredDate() {
        return requiredDate;
    }

    public void setRequiredDate(LocalDateTime requiredDate) {
        this.requiredDate = requiredDate;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public String getSupplierCode() {
        return supplierCode;
    }

    public void setSupplierCode(String supplierCode) {
        this.supplierCode = supplierCode;
    }

    public String getQrCodeUrl() {
        return qrCodeUrl;
    }

    public void setQrCodeUrl(String qrCodeUrl) {
        this.qrCodeUrl = qrCodeUrl;
    }

    public Byte getStatus() {
        return status;
    }

    public void setStatus(Byte status) {
        this.status = status;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Byte getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(Byte deleteFlag) {
        this.deleteFlag = deleteFlag;
    }


}
